<?php
class Father
{
	//访问控制符：指示类成员在哪里可以被访问：public/private/protected
	//成员状态符：指示如何访问该成员：静态self/parent/static 非静态的：$this->
	public static $name= 'yuping';//公共静态属性，类内部/外部/子类均可以访问
	private static $age = 33;//私有静态属性，只能在类内部访问
	protected static $salary = 5800;//受保护的静态属性，可以在类内部和子类中访问
	public static function show()//静态方法
	{
		//静态属性只允许在静态方法中访问，静态方法不允许使用伪变量$this-> ,用self::加属性，注意这里要加$
		return '年龄：'.self::$age.'---'.'工资：'.self::$salary;
	}
}
//创建了类Son,继承自Father类
class Son extends Father
{
	public static function display()
	{
		//parent::引用父类中的静态成员
		return '工资是：'.parent::$salary;
	}
}

echo '姓名是：'.Father::$name;//外部访问静态成员，使用类名::静态成员，静态属性必须加$符号。静态成员（静态属性和静态方法）
echo '<hr>';
echo Father::show();//访问类中的静态方法
echo '<hr>';
echo Son::show();//用子类访问父类中的静态方法
echo '<hr>';
echo Son::display();//访问子类的静态方法
echo '<hr>';
$obj = new Father;
echo $obj->show();//外部使用对象，也可以访问静态方法
//echo $obj->$name;//外部对象不能访问类中的静态属性
echo '<hr>';
$res = $obj instanceof Father;//instanceof检查某个对象是不是某个类的实列。返回布尔值
echo '$obj是Father类的实例吗？'.($res ? '是的' : '不是的');